1. Field of the Invention
The present invention relates to a phone dialing technique, and more particularly, to the dial/redial functions of general phones so as to improve the dial/redial functions in practical applications.
2. Description of the Related Art
General phones provide a so-called redial function, in which, a user doesn't have to press number keys again and the phone number pressed previously can be recalled by pressing a specified key. In fact, the redial function is implemented by a previous process in a dialing action. Along with drawings, a procedure of processing a dialing action in the prior art is described below in detail.
FIG. 1 (PRIOR ART) shows a state transfer diagram of phone dialing actions in the prior art. In the following descriptions, oval boxes indicate states, rectangles boxes indicate state transfer conditions triggered by a phone or the processing actions of a phone, and trapezoid boxes indicate state transfer conditions triggered by a user or the actions of a user. As shown in FIG. 1, the dialing procedure includes the following states: an off state S1, an idle state S2, a key-pressing state S3, a dial state S4, and an off-line state S5.
Before the phone is powered on, the system is in the off state S1. After powered on, the system transfers to the idle state S2. During the transfer procedure, the phone first clears a parameter KEY_CNT as 0 (P1). The parameter KEY_CNT, for counting pressed keys, is set as 0 in the idle state S2 because the user has not pressed any key yet. Then, when the user picks up the handset (A2), the phone shows a dial tone, enters the key-pressing state S3, and waits for keys pressed. Meanwhile, if the user presses the redial key (A3), it proceeds to the redial procedure (P3), that is, the previously stored phone number is dialed. On the other hand, the user usually presses dial keys, such as the numeral keys of “0”˜“9” (A4), and starts to dial; then the phone stores the values X corresponding to the pressed dial keys in a parameter REDIAL[1], increases the parameter KEY_CNT by 1 (P4), and transfers to the dial state S4. The parameter REDIAL indicates an array, storing the values that respectively correspond to the dial keys pressed by the user. Then, the user continues to press the other keys of a phone number (A5) while the system keeps in the dial state S4; each time a dial key is pressed, the parameter KEY_CNT is increased by 1 (P4) and the values X corresponding to the pressed dial keys are stored in a parameter REDIAL[KEY_CNT+1] (P5).
When the user finishes dialing, the system is transferred to a different state according to a different dialing state. For example, if the user tries to dial the phone number 2218-5452 and the line is through after the user finishes dialing the eight keys (P7), the system returns to the key-pressing state S3 and the user can start to communicate. On the other hand, if the user presses a wrong number or the line is busy (P8), the system is transferred to the off-line state S5 indicating that the line is not through, and the system returns to the idle state S2 after the user hangs up (A6). If the user inputs the correct number in the previous step, as long as the user picks up the handset (i.e. enters the key-pressing state S3) and presses the redial key, the phone number values previously stored in the array parameter REDIAL can be outputted sequentially via the redial procedure P3.
There are defects in the application during the dialing procedure shown in FIG. 1. That is, the dialing procedure is neither suitable for a number with an extension number nor suitable for a connected number followed by a specified key. Referring to FIG. 1, when the system is in the dial state S4, the system will return to the key-pressing state S3 as long as the user finishes pressing all the dial keys and gets through. Meanwhile, if the user follows the audio instruction from the other party and presses an extension number or other specified keys, the system will jump to the dial state S4 till the call is through. When the system jumps from the key-pressing state S3 to the dial state S4, the phone sets the parameter KEY_CNT as 1 and stores the values corresponding to the newly inputted keys in the parameter REDIAL[1], that is, the first set that is a phone number previously stored is cleared. If the user presses the redial key, the second set that is an extension number or a key instruction is actually redialed, and therefore the redial function required can't be achieved. On the other hand, when the phone number is pressed and through, generally the extension number or key instruction can not be pressed till the audio instruction is heard. Further, the redial actions of a phone number and an extension number can not be processed separately in a conventional technique.